/***
 * 编写人：田光辉
 * 日期：2013-09-04
 */
document.write("<script src='js/frame/jquery.json-2.4.min.js'></script>");
/***
 * 验证form表单
 * @param formId form的id
 */
function valiForm(form){
    var inputs = form.find("input[type!=submit][type!=button][type!=reset],select,textarea");
    var flag = true;
    inputs.each(function(i){
    	if(!vali($(inputs[i]))){
    		flag = false;
    		return false;
    	}
    });
    return flag;
}

function tipsx(msg,input){
	layer.tips(msg, input,{
		  tips: [1, '#ec4758'] //还可配置颜色
	});
}

function vali(input){
	if(typeof(input.attr("validates"))=="undefined"){
		return true;
	}
	var validates = $.toJSON(eval("("+input.attr("validates")+")"));
	var inputVal = input.val();
//	if(input.is("select")){
//		alert(input.find("option:selected").val());
//		inputVal = inputVal == ""? "" :input.find("option:selected").val();
//	}
//	
//	if(input.is("textarea")){
//		inputVal = inputVal == ""? input.text():inputVal;
//	}
	
	validates = $.evalJSON(validates);
	var message = validates.message;
	//非空验证
	if(inputVal == "" && validates.required == true){
		input.focus();
		tipsx(message.required, input);
		return false;
	}
	
	//自定义方法验证
	if(validates.func != undefined ){
		var c=eval( eval(validates.func + "()"));
		if(!c){
			input.focus();
			tipsx(message.func, input);
			return false;
		}
	}
	
	//最大长度验证
	if(inputVal.length >validates.maxlength){
		input.focus();
		tipsx(message.maxlength, input);
		return false;
	}
	
	//最小长度验证
	if(inputVal.length <validates.minlength){
		input.focus();
		tipsx(message.minlength, input);
		return false;
	}
	
	//长度范围验证
	if(validates.range != "undefined" && input.val() != "" && validates.range != undefined){
		if(inputVal.length > parseInt(validates.range[1]) || inputVal.length < parseInt(validates.range[0])){
			input.focus();
			tipsx(message.range, input);
			return false;
		}
	}
	
	//手机号码验证
	var reg = /^0?(13[0-9]|15[0123456789]|18[0123456789]|14[0123456789]|17[0123456789])[0-9]{8}$/;
	if(validates.mobile == true && input.val() != ""  && !reg.test(inputVal)){
		input.focus();
		tipsx(message.mobile, input);
		return false;
	}
	
	//邮箱验证
	reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;
	if(validates.email == true && input.val() != ""  && !reg.test(inputVal)){
		input.focus();
		tipsx(message.email, input);
		return false;
	}
	
	//整数验证
    reg = /^-?\d+$/;
	if(validates.int == true && input.val() != "" && !reg.test(inputVal)){
		input.focus();
		tipsx(message.int, input);
		return false;
	}
	
	//非负浮点数（正浮点数 + 0）
    reg = /^\d+(\.\d+)?$/;
	if(validates.float == true && input.val() != "" && !reg.test(inputVal)){
		input.focus();
		tipsx(message.float, input);
		return false;
	}
	
	//数字，英文字母，下划线
    reg = /^\w+$/;
	if(validates.ASCILL == true && input.val() != "" && !reg.test(inputVal)){
		input.focus();
		tipsx(message.ASCILL, input);
		return false;
	}
	
	// 身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X
	reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
	if(validates.IDCARD == true && input.val() != "" && !reg.test(inputVal)){
		input.focus();
		tipsx(message.IDCARD, input);
		return false;
	}
	
	
	//匹配国内电话号码(0511-4405222 或 021-87888822)
	reg = /\d{3}-\d{8}|\d{4}-\d{7}/;
	if(validates.tel == true && input.val() != "" && !reg.test(inputVal)){
		input.focus();
		tipsx(message.tel, input);
		return false;
	}
	
	//reg = /[a-zA-Z]+\/[a-zA-Z]+/;
	reg = /^[a-zA-Z \s]{2,20}$/;
	if(validates.english == true && input.val() != "" && !reg.test(inputVal)){
		input.focus();
		tipsx(message.english, input);
		return false;
	}
	
	
	if(validates.radio == true){
		var iname = input.attr("name");
		var ilen = $(":radio[name='"+iname+"']:checked").length;
		if(ilen == 0){
			input.focus();
			tipsx(message.radio, input);
			return false;
		}
	}
	return true;
}